package com.evil.application.pojo.dto;

import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 应用包 应用组与应用列表 返回实体
 *
 * @author liyang
 * @date 2022-08-08 00:00
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
public class AppTreeDTO extends ItemDTO {

    /**
     * 创建时间
     */
    private Date created;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 是否禁用
     */
    private Integer isEnable;

    /**
     * 权限类型
     */
    private Integer permissionStatus;

    /**
     * 序号
     */
    @JSONField(serialize = false)
    private Integer sort;

    /**
     * 子应用列表
     */
    private List<AppTreeDTO> children;

    public void setChildren(List<AppTreeDTO> children) {
        this.children = children;
        if (CollectionUtil.isNotEmpty(children)) {
            super.setSubItems(children.stream().map(e -> (ItemDTO) e).collect(Collectors.toList()));
        }
    }
}
